import java.util.ArrayList;

public class Kysimus {

	// TODO: fiftyFifty-AINULT siis kui 1 �ige vastus, kysimuse redirect (viskab
	// kysimuse saatjale tagasi), topelt r�nnaku v�imsus,

	private String kysimus;
	private String pildifaili_nimi;

	private ArrayList<Vastus> vastused = new ArrayList<Vastus>();
	private ArrayList<Vastus> fiftyFiftyVastused = new ArrayList<Vastus>();

	// private int kysimuse_raskus_aste;
	
	public Kysimus() {
		this.kysimus = "Siia küsimuse tekst";
		this.pildifaili_nimi = "";
	}

	public void kysimusPrindiV2lja(Kysimus minuKysimus) {
		// prindin v2lja kysimuse
		System.out.println(minuKysimus.get_kysimus());
		System.out.println(minuKysimus.getKysimuse_pilt());

		// prindin v2lja vastuse
		for (int i = 0; i < minuKysimus.getHowManyAnswers(); i++) {
			System.out.println(minuKysimus.get_vastused().get(i).getVastuse_text() + " 6ige/vale:"
					+ minuKysimus.get_vastused().get(i).getVastus_kasoige());
		}
		System.out.println();
	}

	// Special Ability: eemalda yks vale vastus
	public ArrayList<Vastus> eemaldaYksValeVastus() {

		boolean valeVastusEemaldatud = false;
		boolean debug = true;

		for (int i = 0; i < vastused.size(); i++) {

			if (valeVastusEemaldatud == false) {

				if (vastused.get(i).getVastus_kasoige() == false) {

					if (debug == true) {
						System.out.println("EEMALDATI " + vastused.get(i).getVastuse_text() + " EEMALDATI");
					}

					vastused.remove(i);
					valeVastusEemaldatud = true;
				}
			}
		}// for i

		System.out.println("J2rgi on nyyd kysimused:");
		if (debug == true) {
			for (int i = 0; i < vastused.size(); i++) {
				System.out.println(vastused.get(i).getVastuse_text());

			}
		}

		return vastused;
	}

	// Special Ability: 50-50
	public ArrayList<Vastus> fiftyFifty() {

		// tagastab 1 6ige ja 1 vale vastuse
		if (yigeid_vastuseid() == 1) {

			boolean korrektneLisatud = false;
			boolean v22rLisatud = false;
			boolean debug = true;

			// k�in k�ik liikmed l�bi ja valin esimese �ige ja esimese vale
			for (int i = 0; i < vastused.size(); i++) {

				if (korrektneLisatud == false) {

					if (vastused.get(i).getVastus_kasoige()) {
						fiftyFiftyVastused.add(vastused.get(i));
						korrektneLisatud = true;
					}
				}

				if (v22rLisatud == false) {

					if (vastused.get(i).getVastus_kasoige() == false) {
						fiftyFiftyVastused.add(vastused.get(i));
						v22rLisatud = true;
					}
				}
			}

			if (debug == true) {
				System.out.println(fiftyFiftyVastused.get(0).getVastuse_text());
				System.out.println(fiftyFiftyVastused.get(1).getVastuse_text());
			}

			return fiftyFiftyVastused;

		}

		// tagastab tyhja arrayListi
		else {
			// ei saa fiftyFifty teha
			return vastused;

		}
	}

	public int yigeid_vastuseid() {
		int vastus = 0;
		for (int i = 0; i < this.vastused.size(); i++)
			if (this.vastused.get(i).getVastus_kasoige())
				vastus++;
		return vastus;
	}

	public void set_kysimus(String kysimuse_tekst) {
		this.kysimus = kysimuse_tekst;
	}

	public String get_kysimus() {
		return this.kysimus;
	}

	public void randomizeAnswers() {

		ArrayList<Vastus> uued = new ArrayList<Vastus>();

		int j = this.vastused.size();

		for (int i = 0; i < j; i++) {
			int t = (int) (Math.random() * this.vastused.size());
			Vastus uus_vastus = this.vastused.get(t);
			this.vastused.remove(t);
			uued.add(uus_vastus);
		}
		this.vastused = uued;
	}

	public void set_vastused(ArrayList<Vastus> vastused) {
		this.vastused = vastused;
	}

	public ArrayList<Vastus> get_vastused() {
		return this.vastused;
	}

	public void setKysimuse_pilt(String nimi) {
		this.pildifaili_nimi = nimi;
	}

	public String getKysimuse_pilt() {
		return this.pildifaili_nimi;
	}

	public void add_vastus(Vastus vastus) {
		vastused.add(vastus);
	}
	
	public void remove_vastus (int indeks) {
		vastused.remove(indeks);
	}

	public int getHowManyAnswers() {
		return vastused.size();
	}

} // end class Kysimus
